<!--
 * new page
 * @author: eminem89
 * @since: 2023-12-24
 * Person.vue
-->
<template>
    <div class="person">
        <h2>姓名:{{ name }}</h2>
        <h2>年龄:{{ age }}</h2>
        <button @click="changeName">修改姓名</button>
        <button @click="changeAge">修改年龄</button>
        <button @click="showTel">查看联系方式</button>
        <!-- <h2>姓名:{{name}}</h2>            -->
    </div>
</template>

<script lang="ts">
export default {
    name: 'Person',
    setup() {
        //setup函数中的this是undefined，Vue3中已经弱化this了
        //数据
        let name = '张三'; //注意此时的name不是响应式的
        let age = 18; //注意此时的age不是响应式的
        let tel = '1388888888'; //注意此时的tel不是响应式的
        //方法
        function changeName() {
            name = 'zhang-san'; //注意这样修改name页面是没有变化的
        }
        function changeAge() {
            age += 1; //注意这样修改age页面是没有变化的
        }
        function showTel() {
            alert(tel);
        }
        //将数据、方法交出去，模板中才可以使用
        //         return {name,age,changeName,changeAge,showTel}
        //setup的返回值也可以是一个渲染函数
        return () => '哈哈';
    },
};
</script>
<style scoped>
.person {
    background-color: skyblue;
    box-shadow: 0 0 10px;
    border-radius: 10px;
    padding: 20px;
}
button {
    margin: 0 5px;
}
</style>
